import { Lunar } from 'lunar-typescript'
import dayjs from 'dayjs'

export default function getCurrentTime(): currentTime {
  const nowTime = ref('')
  nowTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')

  // 解构农历对象
  const renderLunarCalendar = (): lunar => {
    const lunar = Lunar.fromDate(new Date())
    const gzYear = lunar.getYearInGanZhi() // 道历年
    const gzMonth = lunar.getMonthInGanZhi() // 道历月
    const gzDay = lunar.getDayInGanZhi() // 道历日
    const IMonthCn = lunar.getMonthInChinese() // 农历月
    const IDayCn = lunar.getDayInChinese() // 农历日
    const ncWeek = lunar.getWeekInChinese() // 农历星期
    const text = `${gzYear}年 ${IMonthCn}月${IDayCn} 星期${ncWeek}`
    return {
      gzYear,
      gzMonth,
      gzDay,
      IMonthCn,
      IDayCn,
      ncWeek,
      text
    }
  }
  const currentTime = reactive<currentTime>({
    // 之前 nowTime 一直放在了 getCurrentTime 函数外面, 所以在每次执行 getCurrentTime 函数时, 不会重置 nowTime.value
    // 只会一直沿用之前的值
    time: nowTime.value,
    lunar: reactive<lunar>(renderLunarCalendar())
  })
  return currentTime
}
